maven浅谈之settings.xml和仓库及镜像

您所在的位置:网站首页 maven settings配置server和mirror maven浅谈之settings.xml和仓库及镜像

maven浅谈之settings.xml和仓库及镜像

2023-12-14 22:38| 来源: 网络整理| 查看: 265

概述

settings.xml是maven最重要的配置,下面是其可以配置的元素,注意:settings配置的属性在pom也是可以引用的。

一、简单配置信息

1.1、配置本地仓库路径

D:/abc

1.2、maven是否需要和用户交互

true

1.3、是否需要使用plugin-registry.xml文件来管理插件版本。

false

1.4、是否离线模式运行(连接不上网)

false

1.5、当插件的组织id(groupId)没有显式提供时,供搜寻插件组织Id(groupId)的列表。 我们常常在pom中配置插件,都是可以不配置的,因为默认提供了org.apache.maven.plugins和org.codehaus.mojo。

org.apache.maven.plugins org.codehaus.mojo 二、复杂的配置 2.1 proxies myproxy true http proxy.somewhere.com 8080 proxyuser somepassword *.google.com|ibiblio.org 2.2 profiles(配置仓库)

我们知道pom中也是有profiles这个属性的,那么他们的区别是settings.xml总的profile和pom中的profile的区别区别是,settings.xml中的profile只有activation,repositories,plugineReositories,properties四个子元素。通常是用来配置仓库信息的。

prod 2.2.1 profile中的仓库

我们下载maven之后,直接使用,也是可以直接下载依赖的,因为maven的安装包中已经放置了中央仓库,不同的版本路径是一样的,我安装的是3版本的,它的位置是:lib/maven-model-builder-3.3.3.jar解压中的org/apache/maven/model/pom-4.0.0.xml中。 由于中央仓库在国外,所以我们下载的速度比较慢,所以一般都会使用国内的仓库。国内一般都是用阿里的仓库(https://developer.aliyun.com/mvn/guide) 在settings.xml中定义仓库,注意由于settings.xml不直接支持repositories语法,所以一般都是把仓库定义在profile中。

maven-repo central central https://maven.aliyun.com/repository/central/ true false maven-repo 2.3 mirror镜像

镜像会对仓库的请求进行过滤,也就是说当我们下载依赖的时候,如果镜像中存在,就直接从镜像中下载。 国内阿里的镜像:

alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central

id:是镜像的标识 mirrorOf:被镜像仓库的id,例如central标识替代中央仓库,google标识替代谷歌套件仓库

问题1:那么就产生一个问题了,都已经有仓库了为什么需要镜像呢?我理解的镜像其实就是对仓库的集合。可以一次性解决多个仓库的配置。 问题2:那么我们直接配置镜像了,还需要配置仓库吗?有时候需要 比如,镜像中不存在对应的依赖,那我们就要独立配置仓库了,还有就是我们要上传jar也要配置仓库。 问题3:这么多途径获取依赖,那么一个依赖到底从哪里途径获取呢? 首先本地仓库没有,然后要经过镜像,没有,找自己配置的仓库,如果没有再去找中央仓库。

2.4 servers

一般,仓库的下载和部署是在pom.xml文件中的repositories和distributionManagement元素中定义的。然而,一般类似用户名、密码(有些仓库访问是需要安全认证的)等信息不应该在pom.xml文件中配置,这些信息可以配置在settings.xml中。 当我们要把自己的jar上传到仓库,供其他人使用,就需要上传mvn deploy 需要我们在项目的pom文件中定义上传的仓库

nexus-releases Nexus Release Repository http://127.0.0.1:8080/nexus/content/repositories/releases/ nexus-snapshots Nexus Snapshot Repository http://127.0.0.1:8080/nexus/content/repositories/snapshots/

一般来说分发包到仓库都是要经过用户验证的,用户的验证信息都是放在settings.xml中,避免信息不必要的泄露

nexus-releases admin admin123 nexus-snapshots admin admin123

注意:这里的id要和pom中distributionManagement中的仓库的id保持一致,确定是哪个仓库的验证信息。

nexus是私服,可以理解为运行仓库的服务器。所以是仓库的管理器,一个nexus可以设置多个仓库。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3